home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
T-TPUG Old Monthly Disks
/
(c)t9.d64
/
class program.c
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
6KB
|
314 lines
1 REM ****************
2 REM *BY MIKE FLAVEL*
3 REM ****************
9 DIMS$(40),A(40),M(40,40),U(40)
10 POKE53280,0:POKE53281,0:PRINTCHR$(8),CHR$(14)
11 PRINT"[147]"TAB(13)"[152][176][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"
20 PRINTTAB(13)"[152][221][195]LASS [208]ROGRAM[221]"
21 PRINTTAB(13)"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][189][151]"
30 PRINT"";TAB(18)"[205]ENU[151]"
35 PRINTTAB(18)"[163][163][163][163]"
40 PRINT"[153][1] [195]REAT A [195]LASS"
41 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][151]"
50 PRINT"[2] [210]EVIEW A [195]LASS"
51 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
55 PRINT"[152][3] [193]DD [205]ARK"
56 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163]"
60 PRINT"[158][4] [193]DD [211]TUDENT"
61 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
62 PRINT"[152][5] [208]RINT OUT OF CLASS"
63 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
65 PRINT"[129][6] [195]HANGE MARK"
66 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
67 PRINT"[155][7] [197]ND "
68 PRINT"[163][163][163][163][163][163][163]"
69 PRINT"[8] [210]EAD ERROR CHANNEL"
70 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
74 GETA$
75 IFVAL(A$)=0THEN74
80 A=VAL(A$)
90 ONAGOTO100,500,900,1600,1900,2400,2300,3100
100 REM CREAT A CLASS
105 PRINT"[153][147][195]REAT A CLASS"
110 INPUT"[151][197]NTER NAME OF CLASS";C$
120 PRINT"[147][199]REATER THAN 1"
121 INPUT"[197]NTER NUMBER OF STUDENTS IN CLASS";S
122 IFS<=1THEN121
130 FORZ=1TOS
134 PRINT"[147][211]TUDENTS ENTERED SO FAR:"
135 FORF=1TOZ:PRINTS$(F),:NEXTF:PRINT
140 PRINT"[197]NTER STUDENT #";Z;"";
150 INPUTS$(Z)
160 REM ZERO
161 PRINT"[147][151][200]OW MANY MARKS DO YOU WISH TO GIVE ":PRINTS$(Z);
165 PRINT" AT THE PRESENT TIME.[151]"
170 INPUTA(Z)
171 IFA(Z)<1THEN220
180 FORY=1TOA(Z)
190 PRINT"[147][197]NTER MARK #";Y;" FOR ";S$(Z);
200 INPUTM(Z,Y)
210 NEXTY
220 PRINT"[147]":NEXTZ
230 PRINT"[147][206]OW SAVING UNDER ";C$
240 REM SAVE
250 PRINT"PRESS ANY KEY TO CONTINUE"
260 GETA$:IFA$=""THEN260
265 GOSUB3000
270 OPEN2,8,2,"0:"+C$+",S,W"
280 PRINT#2,S
310 FORZ=1TOS
320 PRINT#2,A(Z)
330 NEXTZ
355 FORZ=1TOS
360 FORY=1TOA(Z)
370 PRINT#2,M(Z,Y)
380 NEXTY
390 NEXTZ
420 FORZ=1TOS
430 PRINT#2,S$(Z)
440 NEXTZ
450 CLOSE2
460 PRINT"[147][196][207][206][197]!![146]"
470 PRINT"[208]RESS ANY KEY TO RETURN TO MENU"
480 GETA$:IFA$=""THEN480
490 RUN
500 REM REVIEW CLASS
505 PRINT"[147][151][210]EVIEW A CLASS"
510 INPUT"[197]NTER NAME OF CLASS";C$
520 PRINT"[208]LEASE WAIT FOR ABOUT 10 SECONDS"
530 REM WORK
540 OPEN2,8,2,"0:"+C$+",S,R"
550 INPUT#2,S
580 FORZ=1TOS
590 INPUT#2,A(Z)
600 NEXTZ
630 FORZ=1TOS
640 FORY=1TOA(Z)
650 INPUT#2,M(Z,Y)
660 NEXTY
670 NEXTZ
700 FORZ=1TOS
710 INPUT#2,S$(Z)
720 NEXTZ
730 CLOSE2
740 PRINT"[147][198][201][206][201][211][200][197][196]!!"
750 PRINT"[208]RESS ANY KEY TO BEGIN REVIEW"
755 GETA$:IFA$=""THEN755
760 FORZ=1TOS
770 PRINT"[147][211]TUDENT:";S$(Z)
780 PRINT"[205]ARKS:"
785 IFA(Z)<1THENPRINT"[206]O MARK AT PRESENT TIME.":GOTO831
790 FORY=1TOA(Z)
800 PRINTM(Z,Y);"";
810 AV=M(Z,Y)+AV
820 NEXTY
829 T=T+(AV/A(Z))
830 PRINT"[193]VERAGE IS:";(AV/A(Z))
831 REM
832 PRINT"[208]RESS ANY KEY TO CONTINUE"
833 GETA$:IFA$=""THEN833
834 AV=0
840 NEXTZ
841 IFT<1THEN846
845 PRINT"[195]LASS AVERAGE:";T/S:GOTO850
846 PRINT"[195]LASS AVERAGE IS UNDETERMINAL"
850 PRINT"[208]RESS ANY KEY TO RETURN TO MENU"
860 GETA$:IFA$=""THEN860
870 RUN
900 REM ADD MARKS
905 PRINT"[152][147][193]DD MARKS"
910 INPUT"[197]NTER CLASS NAME";C$
920 OPEN2,8,2,"0:"+C$+",S,R"
930 INPUT#2,S
940 FORZ=1TOS
950 INPUT#2,A(Z)
960 NEXTZ
970 FORZ=1TOS
980 FORY=1TOA(Z)
990 INPUT#2,M(Z,Y)
1000 NEXTY
1010 NEXTZ
1020 FORZ=1TOS
1030 INPUT#2,S$(Z)
1040 NEXTZ
1050 CLOSE2
1060 PRINT"PRESS ANY KEY TO BEGIN REVIEW"
1070 GETA$:IFA$=""THEN1070
1080 FORZ=1TOS
1090 PRINT"[147][211]TUDENT:";S$(Z)
1100 PRINT"[205]ARKS:"
1105 IFA(Z)<1THENPRINT"[206]O MARK AT PRESENT TIME":GOTO1160
1110 FORY=1TOA(Z)
1120 PRINTM(Z,Y);"";
1130 AV=M(Z,Y)+AV
1140 NEXTY
1150 PRINT"[193]VERAGE IS:";(AV/A(Z))
1160 PRINT"[208]RESS ANY KEY TO CONTINUE"
1170 GETA$:IFA$=""THEN1170
1180 AV=0
1190 NEXTZ
1220 INPUT"[147][197]NTER NAME YOU WISH TO ADD TO";Z$
1230 PRINT"[147][206]OW SEARCHING FOR ";Z$
1240 FORZ=1TOS
1250 IFZ$=S$(Z)THEN1280
1260 NEXTZ
1270 PRINT"[147][206]AME NOT FOUND. [210]ETURNING TO MENU":FORP=1TO3000:NEXT:RUN
1280 PRINT"[147][206]AME FOUND"
1290 PRINT"[200]ERE ARE HIS CURRENT MARKS"
1300 FORY=1TOA(Z)
1310 PRINTM(Z,Y);" ";
1320 NEXT
1330 PRINT"[197]NTER THE ";A(Z)+1;" MARK."
1340 INPUTM(Z,A(Z)+1)
1350 A(Z)=A(Z)+1
1351 PRINT"[158][208]RESS [F1] TO ADD ANOTHER MARK.[151]"
1352 GETA$:IFA$=""THEN1352
1353 IFA$="[133]"THEN1220
1355 GOSUB3000
1360 PRINT"[147][206]OW SAVING"
1370 OPEN2,8,2,"@0:"+C$+",S,W"
1380 PRINT#2,S
1390 FORZ=1TOS
1400 PRINT#2,A(Z)
1410 NEXTZ
1420 FORZ=1TOS
1430 FORY=1TOA(Z)
1440 PRINT#2,M(Z,Y)
1450 NEXTY
1460 NEXTZ
1470 FORZ=1TOS
1480 PRINT#2,S$(Z)
1490 NEXTZ
1500 CLOSE2
1510 RUN
1600 REM ADD A STUDENT
1605 PRINT"[147][158][193]DD STUDENT TO CLASS"
1610 PRINT"[159][197]NTER [195]LASS NAME YOU WISH TO ADD STUDENTTO"
1620 INPUTC$
1630 OPEN2,8,2,"0:"+C$+",S,R"
1640 INPUT#2,S
1650 FORZ=1TOS
1660 INPUT#2,A(Z)
1670 NEXTZ
1680 FORZ=1TOS
1690 FORY=1TOA(Z)
1700 INPUT#2,M(Z,Y)
1720 NEXTY
1730 NEXTZ
1740 FORZ=1TOS
1750 INPUT#2,S$(Z)
1760 NEXTZ
1770 CLOSE2
1780 INPUT"[197]NTER NAME OF STUDENT";S$(S+1)
1790 PRINT"[147][197]NTER NUMBER OF MARKS TO BE GIVEN[151]"
1800 INPUTA(S+1)
1805 IFA(S+1)<1THEN1860
1810 FORY=1TOA(S+1)
1820 PRINT"[197]NTER MARK #";Y;" FOR ";S$(Z);"[151]"
1830 INPUTM(S+1,Y)
1840 NEXTY
1860 S=S+1
1865 GOSUB3000
1870 GOTO1360
1900 REM CLASS PRINTOUT
1901 PRINT"[147][152][195]LASS PRINTOUT"
1905 INPUT"[197]NTER CLASS NAME";C$
1910 OPEN2,8,2,"0:"+C$+",S,R"
1920 INPUT#2,S
1930 FORZ=1TOS
1940 INPUT#2,A(Z)
1950 NEXTZ
1960 FORZ=1TOS
1970 FORY=1TOA(Z)
1980 INPUT#2,M(Z,Y)
1990 NEXTY
2000 NEXTZ
2010 FORZ=1TOS
2020 INPUT#2,S$(Z)
2030 NEXTZ
2040 CLOSE2
2050 PRINT"[147][215]HEN YOU HAVE PAPER IN THE PRINTER AND"
2060 PRINT"YOU HAVE TURNED THE PRINTER ON, PRESS ANY KEY.[151]"
2070 GETA$:IFA$=""THEN2070
2080 OPEN3,4,7
2090 PRINT#3,CHR$(16)"18[195]LASS [210]EPORT"
2100 PRINT#3
2110 PRINT#3,"[195]LASS NAME:";C$
2120 PRINT#3:PRINT#3
2130 FORZ=1TOS
2140 PRINT#3,"[211]TUDENT:";S$(Z)
2150 PRINT#3,"[211]TUDENTS [205]ARKS"
2155 IFA(Z)<1THENPRINT#3,"[206]O MARKS AT PRESENT TIME":GOTO2188
2160 FORY=1TOA(Z)
2165 T=T+M(Z,Y)
2170 PRINT#3,M(Z,Y);" ";
2180 NEXTY
2185 PRINT#3,CHR$(10)"[193]VERAGE:";T/A(Z)
2186 CA=CA+(T/A(Z))
2188 T=0
2189 PRINT#3,CHR$(13)
2190 NEXTZ
2194 IFCA<1THEN2196
2195 PRINT#3,"[195]LASS AVERAGE IS:";CA/S:GOTO2200
2196 PRINT#3,"[195]LASS AVERAGE IS UNDETERMINAL"
2197 PRINT#3,CHR$(13)
2200 CLOSE3
2220 RUN
2300 PRINT"[147]":END
2400 REM CHANGE MARK
2405 PRINT"[129][147][195]HANGE MARK"
2410 INPUT"[197]NTER NAME OF CLASS";C$
2420 PRINT"[208]LEASE WAIT FOR ABOUT 10 SECONDS"
2430 REM WORK
2440 OPEN2,8,2,"0:"+C$+",S,R"
2450 INPUT#2,S
2460 FORZ=1TOS
2470 INPUT#2,A(Z)
2480 NEXTZ
2490 FORZ=1TOS
2500 FORY=1TOA(Z)
2510 INPUT#2,M(Z,Y)
2520 NEXTY
2530 NEXTZ
2540 FORZ=1TOS
2550 INPUT#2,S$(Z)
2560 NEXTZ
2570 CLOSE2
2580 PRINT"[147][197]NTER NAME YOU WISH TO CHANGE."
2590 INPUTV$
2600 FORZ=1TOS
2610 IFS$(Z)=V$THEN2640
2620 NEXTZ
2630 PRINT"[206]AME NOT FOUND. [210]ETURNING TO MENU.":FORG=1TO3000:NEXT:RUN
2640 PRINT"[147][151][206]AME:";S$(Z):PRINT"[205]ARKS:"
2650 FORY=1TOA(Z)
2660 PRINTM(Z,Y)" ";
2670 NEXTY
2680 INPUT"[197]NTER MARK YOU WISH TO CHANGE";G
2690 FORX=1TOA(Z)
2700 IFG=M(Z,X)THEN2730
2710 NEXTX
2720 PRINT"[205]ARK NOT FOUND. [210]ETURNING TO MENU.":FORG=1TO3000:NEXT:RUN
2730 PRINT"[147][205]ARK FOUND."
2740 INPUT"[197]NTER NEW MARK";M(Z,X)
2750 GOTO1360
3000 LETFLAG=0
3010 FORZ=1TOS-1
3020 IFS$(Z)<=S$(Z+1)THEN3070
3030 H$=S$(Z):H=A(Z):FORQ=1TOA(Z):U(Q)=M(Z,Q):NEXTQ
3040 S$(Z)=S$(Z+1):A(Z)=A(Z+1):FORQ=1TOA(Z+1):M(Z,Q)=M(Z+1,Q):NEXTQ
3050 S$(Z+1)=H$:A(Z+1)=H:FORQ=1TOA(Z+1):M(Z+1,Q)=U(Q):NEXTQ
3060 LETFLAG=1
3070 NEXTZ
3080 IFFLAG=1THEN3000
3090 RETURN
3100 REM READ ERROR CHANNEL
3110 PRINT"[147][152][210]EAD DRIVE ERROR CHANNEL"
3120 OPEN15,8,15
3130 INPUT#15,A$,B$,C$,D$
3140 CLOSE15
3150 PRINT"[196]RIVE STATUS:";A$;" ";B$;" ";C$;" ";D$
3160 PRINT"[208]RESS ANY KEY TO CONTINUE"
3170 GETA$:IFA$=""THEN3170
3180 RUN